package com.domainchen.minidao.dao;

import java.util.List;
import java.util.Map;

import org.jeecgframework.minidao.annotation.Arguments;
import org.jeecgframework.minidao.annotation.Param;
import org.jeecgframework.minidao.annotation.ResultType;
import org.jeecgframework.minidao.annotation.Sql;
import org.jeecgframework.minidao.pojo.MiniDaoPage;
import org.springframework.stereotype.Repository;

import com.domainchen.minidao.model.SysUser;

/** 
* @author domainchen E-mail:cytxiamen@163.com
* @version 创建时间：2016年8月30日 上午10:19:39 
* @类说明 
*/
@Repository("sysUserDao")
public interface SysUserDao {

	/**
	 * 查询返回Map类型数据记录
	 * @param uVo
	 * @return
	 */
	List<Map<String,Object>> getAllConvertMap();
	
	/**
	 * 返回用户对象
	 * @param userName
	 * @return
	 */
	@Arguments({"userNo"})
	SysUser getSysUser(String userNo);
	
	/**
	 * 多个参数查询返回Map
	 * @param userNo
	 * @param userName
	 * @return
	 */
	@Arguments({"userNo","userName"})
	Map<String,Object> getSysUserConvertMap(String userNo,String userName);
	
	
	/**
	 * Param注解参数
	 * @param userNo
	 * @param userName
	 * @return
	 */
	Map<String,Object> getSysUserConvertMap2(@Param("userNo") String userNo,@Param("userName") String userName);
	
	/**
	 * 添加
	 * @param vo
	 * @return
	 */
	@Arguments({"vo"})
	int insert(SysUser vo);
	
	/**
	 * 修改
	 * @param vo
	 * @return
	 */
	@Arguments({"vo"})
	int update(SysUser vo);
	
	/**
	 * 查询总记录数
	 * @return
	 */
	@Sql("select count(*) from sys_user")
	Integer getCount();
	
	/**
	 * 查询 分页
	 * 
	 * @param userVo
	 * @param currPage 请求页
	 * @param pageSize  显示记录数
	 * @return
	 */
	@Arguments({ "userVo", "currPage", "pageSize" })
	@ResultType(SysUser.class)
	public MiniDaoPage<SysUser> getSysUserPage(SysUser userVo,int currPage,int pageSize);
 }
